'''
def stack_dfs():
    # 前3个数代表已经购买的物品的价钱和、购买的物品数、上一个物品的编号
    S = [[0, 0, -1]]
    # 之后的项代表购买的物品编号
    while S:
        s = S.pop()
        sm = s[0]
        k_n = s[1]
        if sm > m or k_n > k: continue
        if sm == m and k_n == k:
            global f
            f = True
            return
        c = s[2] + 1
        if c == n: continue
        if c in s[3:]: continue
        s1 = s.copy()
        s1[0] = sm + a[c]
        s1[1] = k_n + 1
        s1[2] = c
        s1.append(c)
        s2 = s.copy()
        s2[0] = sm
        s2[1] = k_n
        s2[2] = c
        S.extend([s1, s2])
        

m, n, k = map(int, input().split())
a = [*map(int, input().split())]
f = False
stack_dfs()
if f: print("Yes")
else: print("No")

栈dfs解法：120 - 130ms
'''
'''
'''
def dfs(i, k_n, sm):
    global f
    if f or sm > m: return
    if k_n == k:
        if sm == m: f = True
        return
    if i == n - 1: return
    if a_[i + 1]:
        a_[i + 1] = False
        dfs(i + 1, k_n + 1, sm + a[i + 1])
        a_[i + 1] = True
    dfs(i + 1, k_n, sm)

m, n, k = map(int, input().split())
a = [*map(int, input().split())]
a_ = [True for i in range(n)]
f = False
dfs(-1, 0, 0)
if f: print("Yes")
else: print("No")
'''
递归解法：70-80ms
'''

# -------------------------------------------------------------------------------

# 比赛环境为python3.8.6版本自带的IDLE，最好早点熟悉一下。。这个东西的提示时有时无

# 菜单栏最右边的Help的Python Docs 比赛时候也可以看，不过建议还是提前多了解了解，

# 比赛的时候至少知道在文档找什么能用的上。

# IDLE是下载Python时自带的，在按住win+s搜索IDLE就能搜到了。

# 然后点左上角的File可以创建新文件，然后按F5可以运行。
